package com.shujia

import java.io.{BufferedReader, FileReader}

import scala.io.{BufferedSource, Source}

object Demo4ScalaOnJava {
  def main(args: Array[String]): Unit = {

    /**
      * scala 类型推断
      * 自动根据等号右边推断变量类型
      *
      */

    //在scala中使用java类

    //自动推断变量类型
    var stu1 = new Demo3Student("张三", 23)

    // 写死变量类型
    var stu2: Demo3Student = new Demo3Student("张三", 23)

    // 多态 --> 父类的引用指向子类的对象
    var stu3: Object = new Demo3Student("张三", 23)


    println(stu1)


    //使用java io流的方式读取文件
    var bufferedReader: BufferedReader = new BufferedReader(new FileReader("scala/data/students.txt"))

    var line: String = bufferedReader.readLine()

    //在scala中不能在while中进行读取数据
    while (line != null) {
      println(line)

      //读取下一行
      line = bufferedReader.readLine()
    }

    bufferedReader.close()


    println("=" * 100)

    //使用scala提供的工具读取数据

    val source: BufferedSource = Source.fromFile("scala/data/students.txt")

    // Iterator  迭代器，  每一条数据只迭代一次
    val lines: Iterator[String] = source.getLines()

    //增强for循环
    for (line <- lines) {
      println(line)
    }


    /**
      * 变量和常量
      *
      * val   常量 --> 通过val修饰的变量不能再指向其他的对象
      * var  变量 -->  可以再指向其它的对象，但是类型不能变
      */

    val i:Int = 0
    //i = 2

    //自动推断，j使用int类型
    var j = 0
    j = 1

    //不能再指向其它类型的对象
    //j  = "java"


  }
}
